package com.nbsaas.boot.common.api.apis;

import com.nbsaas.boot.common.api.domain.request.JsonDataRequest;
import com.nbsaas.boot.common.api.domain.response.JsonDataResponse;
import com.nbsaas.boot.rest.response.ResponseObject;
import com.nbsaas.boot.rest.response.ListResponse;
import java.util.List;

/**
 * 通用JSON数据处理接口
 */
public interface JsonDataApi {

    /**
     * 保存JSON数据（新增或修改）
     * @param request JSON数据请求
     * @return 响应结果
     */
    ResponseObject<JsonDataResponse> saveJsonData(JsonDataRequest request);

    /**
     * 根据模型编码获取数据列表
     * @param moduleCode 模型编码
     * @return 数据列表
     */
    ListResponse<JsonDataResponse> getDataByModuleCode(String moduleCode);

    /**
     * 根据模型ID获取数据列表
     * @param moduleId 模型ID
     * @return 数据列表
     */
    ListResponse<JsonDataResponse> getDataByModuleId(Long moduleId);

    /**
     * 根据ID获取单条数据
     * @param id 数据ID
     * @return 数据详情
     */
    ResponseObject<JsonDataResponse> getDataById(Long id);

    /**
     * 删除数据
     * @param id 数据ID
     * @return 删除结果
     */
    ResponseObject<?> deleteData(Long id);

    /**
     * 批量删除数据
     * @param ids 数据ID列表
     * @return 删除结果
     */
    ResponseObject<?> batchDeleteData(List<Long> ids);
} 